package com.woniuxy.springaop;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
//就是要继承这个接口
//可以与com.woniuxy.aspectj.MyAspectJ对比
//spring-aop原生写法，只是把代码中的配置移动到xml中来配置，并没有太大区别，而且还很麻烦，同时，切面类，定义过于复杂
public class MyAspectSpring implements MethodInterceptor {
    public void beforeInfo(){
        System.out.println("方法前执行");
    }

    public void afterInfo(){
        System.out.println("方法后执行");
    }

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        beforeInfo();
        //先写后面，首先invoke方法里的参数是invocation，他.的第一个是proceed()
        Object proceed=invocation.proceed();
        afterInfo();
        //返回注意是proceed，而不是null
        return proceed;
    }
}
